tg-me.com/devopsslib/3737
Last Update:
📊 Своя метрика в Prometheus
Хотите отслеживать, сколько запросов прилетает в ваше приложение? Или сколько задач выполнилось? Делается это за 5 шагов — через кастомные метрики.
Попробуем реализовать пример: считаем количество HTTP-запросов в приложении на Go.
1. Подключаем библиотеку Prometheus:
go get github.com/prometheus/client_golang/prometheus
2. Создаём счётчик:
var requestCounter = prometheus.NewCounter(
prometheus.CounterOpts{
Name: "myapp_http_requests_total",
Help: "Total number of HTTP requests",
})
3. Регистрируем метрику:
func init() {
prometheus.MustRegister(requestCounter)
}
requestCounter
будет инкрементироваться при запросе приложения.4. Добавляем endpoint для Prometheus:
http.Handle("/metrics", promhttp.Handler())
log.Fatal(http.ListenAndServe(":8080", nil))
5. Пишем конфиг на стороне Prometheus
scrape_configs:
- job_name: 'myapp'
metrics_path: /metrics
static_configs:
- targets: ['localhost:8080']
📍 Всё — теперь
http://localhost:8080/metrics
отдаёт данные, которые можно добавить в дашборд в Prometheus.